package com.wgz.medicalmanagement.common.enums;

import lombok.AllArgsConstructor;
import lombok.Getter;

/**
 * 响应状态码枚举
 */
@Getter
@AllArgsConstructor
public enum ResultCode {
    
    /**
     * 成功
     */
    SUCCESS(200, "操作成功"),
    
    /**
     * 失败
     */
    FAIL(500, "操作失败"),
    
    /**
     * 参数错误
     */
    PARAM_ERROR(400, "参数错误"),
    
    /**
     * 未授权
     */
    UNAUTHORIZED(401, "未授权"),
    
    /**
     * 禁止访问
     */
    FORBIDDEN(403, "禁止访问"),
    
    /**
     * 资源不存在
     */
    NOT_FOUND(404, "资源不存在"),
    
    /**
     * 用户名或密码错误
     */
    LOGIN_ERROR(1001, "用户名或密码错误"),
    
    /**
     * 账户已锁定
     */
    ACCOUNT_LOCKED(1002, "账户已锁定"),
    
    /**
     * 账户已禁用
     */
    ACCOUNT_DISABLED(1003, "账户已禁用"),
    
    /**
     * 用户名已存在
     */
    USERNAME_EXISTS(1004, "用户名已存在"),
    
    /**
     * 邮箱已存在
     */
    EMAIL_EXISTS(1005, "邮箱已存在"),
    
    /**
     * 验证码错误
     */
    CAPTCHA_ERROR(1006, "验证码错误"),
    
    /**
     * 验证码已过期
     */
    CAPTCHA_EXPIRED(1007, "验证码已过期"),
    
    /**
     * token已过期
     */
    TOKEN_EXPIRED(1008, "登录已过期，请重新登录"),
    
    /**
     * token无效
     */
    TOKEN_INVALID(1009, "无效的登录凭证"),
    
    /**
     * 业务异常
     */
    BUSINESS_ERROR(2001, "业务处理异常");
    
    /**
     * 状态码
     */
    private final Integer code;
    
    /**
     * 状态消息
     */
    private final String message;
} 